package tpN2.ejercicioN11;

public class Buffer {
	
	private Integer[] buffer;
	private int capacidadBuffer;
	private int indiceAlmacenamiento = 0;

	public Buffer(int capacidadBuffer){
		// si capacidadBuffer < 1 entonces capacidadBuffer = 1, sino mantiene su valor
		capacidadBuffer = (capacidadBuffer < 1) ? 1 : capacidadBuffer;
		this.capacidadBuffer = capacidadBuffer;
		this.buffer = new Integer[this.capacidadBuffer];
	}
	
	public boolean estaCompleto(){
		if (indiceAlmacenamiento == this.capacidadBuffer)
			return true;
		else
			return false;
	}
	public boolean estaVacio(){
		if (indiceAlmacenamiento == 0)
			return true;
		else
			return false;
	}	
	public void vaciarBuffer(){
		System.out.println("\nvaciando BUFFER . . .");
		this.buffer = new Integer[this.capacidadBuffer];
		indiceAlmacenamiento = 0;
	}
	public Integer[] datosBuffer(){
		Integer[] temp = buffer;
		return temp;
	}
	public void almacenarDato(int dato){
		if (!estaCompleto()){
			System.out.println("almacenando dato en BUFFER . . .");
			buffer[indiceAlmacenamiento] = dato;
			indiceAlmacenamiento++;
		}
		else
			System.out.println("El BUFFER está lleno");
	}
	public int getIndiceAlmacenamiento() {
		return indiceAlmacenamiento;
	}

	public int getCapacidadBuffer() {
		return capacidadBuffer;
	}
	
//	public void imprimirBuffer(){
//	for (int i = 0; i < indiceAlmacenamiento; i++) {
//		System.out.println(buffer[i]);
//	}
//}


//	public static void main(String[] args) {
//		Buffer buffer = new Buffer(10);
//		System.out.println(buffer.estaCompleto());
//		buffer.almacenarDato(210345);
//		buffer.almacenarDato(435237);
//		buffer.almacenarDato(982342);
//		buffer.almacenarDato(482004);
//		buffer.almacenarDato(210345);
//		buffer.almacenarDato(435237);
//		System.out.println(buffer.estaCompleto());
//		buffer.imprimirBuffer();
//		buffer.vaciarBuffer();
//		System.out.println(buffer.estaCompleto());
//	}
}
